// src/api/apiError.js
import { message } from 'ant-design-vue'

// 处理API错误
export function handleApiError(error) {
  // 开发环境下打印错误日志
  if (import.meta.env.DEV) {
    console.error('API Error:', error)
  }

  // 默认错误消息
  let errorMessage = '请求失败，请稍后重试'

  if (error.response) {
    // 服务器返回了错误响应
    const { data } = error.response
    // 使用后端返回的错误信息
    errorMessage = data?.message || errorMessage
  } else if (error.request) {
    // 请求已发送但没有收到响应
    errorMessage = '服务器未响应，请检查网络连接'
  } else {
    // 请求设置出错
    errorMessage = error.message || '请求设置出错'
  }

  // 显示错误提示
  message.error(errorMessage)
  return Promise.reject(error)
}

// 创建带错误处理的请求函数
export async function safeRequest(request) {
  try {
    const response = await request
    return response.data
  } catch (error) {
    return handleApiError(error)
  }
}
